Amazon DocumentDB, MongoDB-এর API সমর্থন করে, যার ফলে আপনি MongoDB-এর Query Language ব্যবহার করে ডেটাবেস থেকে তথ্য অনুসন্ধান এবং ম্যানিপুলেট করতে পারেন। এই প্রক্রিয়াগুলির মধ্যে তিনটি গুরুত্বপূর্ণ কার্যকারিতা হলো Projection, Filtering, এবং Sorting। এগুলি ডেটাবেসের মধ্যে থাকা তথ্যের পরিমাণ কমাতে এবং ফলাফলকে আরো নির্দিষ্ট ও কার্যকরীভাবে সজ্জিত করতে সহায়ক।
১. Projection
Projection এর মাধ্যমে আপনি MongoDB অথবা DocumentDB-তে কুয়েরি চালানোর সময় শুধুমাত্র নির্দিষ্ট ফিল্ডগুলো ফিরিয়ে পেতে পারেন, যা ফলাফলের আউটপুটকে আরও নির্দিষ্ট এবং দ্রুততর করে তোলে।
Projection আপনাকে ডেটাবেসে থাকা ডকুমেন্টের সকল ফিল্ডের পরিবর্তে শুধুমাত্র প্রয়োজনীয় ফিল্ডগুলো নিয়ে আসার সুযোগ দেয়।
উদাহরণ:
ধরা যাক, আপনার একটি users নামক কলেকশন আছে এবং আপনি শুধুমাত্র name এবং email ফিল্ডগুলো দেখতে চান। এর জন্য নিম্নলিখিত কুয়েরি ব্যবহার করতে পারেন:
db.users.find({}, { name: 1, email: 1 })
এখানে:
{}: সমস্ত ডকুমেন্টের জন্য অনুসন্ধান।{ name: 1, email: 1 }: শুধুমাত্রnameএবংemailফিল্ডগুলো ফেরত দিবে, অন্যসব ফিল্ড বাদ দিবে।
Note: 1 দিয়ে ফিল্ডটি নির্বাচন করা হয়, এবং 0 দিয়ে বাদ দেওয়া হয়। যদি আপনি কোনো ফিল্ড বাদ দিতে চান, তবে তাকে 0 দিয়ে ইন্ডিকেট করুন।
আরো একটি উদাহরণ:
db.users.find({}, { _id: 0, name: 1, email: 1 })
এখানে _id ফিল্ড বাদ দেওয়া হয়েছে কারণ ডিফল্টভাবে _id সবসময় ফিরিয়ে আসে।
২. Filtering
Filtering দ্বারা আপনি ডেটাবেস থেকে নির্দিষ্ট শর্ত পূরণের ভিত্তিতে ডেটা প্রাপ্তি করতে পারেন। এটি find() মেথডের মাধ্যমে অনুসন্ধান পরিচালনার সময় শর্ত আরোপ করে।
উদাহরণ:
ধরা যাক, আপনি users কলেকশন থেকে শুধুমাত্র সেই সমস্ত ব্যবহারকারীর নাম এবং ইমেইল দেখতে চান, যাদের বয়স ৩০ এর উপরে। এর জন্য কুয়েরি হবে:
db.users.find({ age: { $gt: 30 } }, { name: 1, email: 1 })
এখানে:
{ age: { $gt: 30 } }:ageফিল্ডের মান ৩০ এর বেশি এমন ডকুমেন্টগুলো বাছাই করবে।{ name: 1, email: 1 }: শুধুমাত্রnameএবংemailফিল্ডগুলো ফিরিয়ে আনবে।
DocumentDB এবং MongoDB-এর বিভিন্ন comparison operators ব্যবহার করে আরো জটিল ফিল্টারিং করা যায়, যেমন:
$eq: সমান$ne: না সমান$lt: ছোট$lte: ছোট অথবা সমান$gt: বড়$gte: বড় অথবা সমান$in: একটি নির্দিষ্ট মানের মধ্যে
উদাহরণ:
db.users.find({ age: { $gte: 18, $lte: 40 } }, { name: 1, age: 1 })
এখানে:
- বাছাই করা হচ্ছে বয়স ১৮ এবং ৪০ এর মধ্যে এমন ব্যবহারকারীদের তথ্য।
৩. Sorting
Sorting ব্যবহার করে আপনি ডেটাবেসের রিটার্নকৃত ডেটা সাজাতে পারেন। এটি ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজানোর জন্য ব্যবহৃত হয়, যেমন অ্যাসেন্ডিং (ascending) বা ডেসেন্ডিং (descending) অর্ডারে।
উদাহরণ:
ধরা যাক, আপনি users কলেকশন থেকে সকল ব্যবহারকারীর নাম এবং বয়স দেখতে চান এবং সেই ডেটাকে বয়স অনুযায়ী সাজাতে চান (অ্যাসেন্ডিং অর্ডারে):
db.users.find({}, { name: 1, age: 1 }).sort({ age: 1 })
এখানে:
.sort({ age: 1 }):ageফিল্ডটি অ্যাসেন্ডিং (ascending) অর্ডারে সাজাবে। (1 মানে অ্যাসেন্ডিং, -1 মানে ডেসেন্ডিং)
আরো একটি উদাহরণ (ডেসেন্ডিং অর্ডার):
db.users.find({}, { name: 1, age: 1 }).sort({ age: -1 })
এখানে:
.sort({ age: -1 }):ageফিল্ডটি ডেসেন্ডিং (descending) অর্ডারে সাজাবে।
সারাংশ
- Projection এর মাধ্যমে আপনি ডেটার নির্দিষ্ট ফিল্ডগুলো নিয়ে আসতে পারেন, যা পরবর্তীতে আপনার অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করে।
- Filtering ব্যবহার করে আপনি ডেটার মধ্যে শর্ত আরোপ করতে পারেন এবং শুধুমাত্র প্রয়োজনীয় ডেটা ফেরত পেতে পারেন।
- Sorting ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজাতে সাহায্য করে, যা ডেটা বিশ্লেষণের জন্য সহায়ক হতে পারে।
এগুলি ব্যবহার করে আপনি DocumentDB অথবা MongoDB-এর ডেটা অনুসন্ধান, বিশ্লেষণ এবং পরিচালনাকে আরো কার্যকরী এবং সুনির্দিষ্ট করতে পারেন।
Read more